export default function(code, url) {
    const date = Date.now()
  return `<template>
  <ant-table
    ref="antTable"
    :dataSource="dataSource"
    :loading="loading"
    v-bind="tableConfig"
    @table-change="tableChangeHandler"
    @table-page-change="pageChangeHandler"
    @table-selected="tableRowSelectedHandler"
  ></ant-table>
</template>

<script>
export default {
  name: 'antTable${date}',
  data() {
    return {
      // 表格的父级对象,即 当前对象 this
      parent:null,
      // 数据源
      dataSource: [],
      // 表格加载状态
      loading:false
    }
  },
  computed:{
      tableConfig:{
        get(){
            return ${code}
        }
      },
      // 表格中使用的方法
      tableBtnMethods: {
          get(){
              return {
                  // 测试方法示例
                  // 示例1
                  // test: ()=>{console.log('test')}
                  // 示例2
                  // test: this.test
              }
          }
      }
  },
  methods: {
   /**
    *  表格发生变化事件
    * @param pagination {Object} 分页对象
    * @param filters {Array} 过滤配置
    * @param sorter {Array} 排序配置
    * @param dataSource {Array} 数据
    * @param instance {Object} table实例对象
    */
    tableChangeHandler({pagination, filters, sorter, dataSource, instance}){
        // todo 事件操作
    },
   /**
    *  表格行选中事件
    * @param selectedRowKeys {Array} 选中的keys
    * @param selectedRows {Array} 选中的行
    * @param instance {Object} table实例对象
    */
    tableRowSelectedHandler({selectedRowKeys, selectedRows, instance}){
        // todo 事件操作
    },
    /**
    *  分页发生变化事件
    * @param current {Number} 当前页
    * @param pageSize {Number} 页大小
    * @param instance {Object} table实例对象
    */
    pageChangeHandler({current, pageSize, instance}){
        // todo 事件操作
    },
    /**
    *  自定义获取数据源
    */
   async getDataSource(){
        // 修改分页配置  current： 当前页面；pageSize：页大小；pageSizeOptions：分页配置；total：数据总数
        // this.$refs.antTable.changePage({current, pageSize, pageSizeOptions, total })

        // 添加选中的行的主键key
        // this.$refs.antTable.addSelectedKeys([1,2,3,4])

        const dataSourceUrl = '${url}'
        // 使用axios请求数据
       // const data = await this.$axios.$get( dataSourceUrl )
       const data = await this.$axios.$get( dataSourceUrl )
       this.dataSource.splice(0, this.dataSource.length, ...data)
    },
    // 表格按钮 添加事件
    // tableBtnAddHandler(){
    //
    // }
  },
  mounted(){
      // 获取数据
       this.getDataSource()
  }
}
</script>
`
}
